#ifndef CAFFEINE_ENTITY_PHYSICSPROP_HPP
#define CAFFEINE_ENTITY_PHYSICSPROP_HPP

#include "Common.hpp"
#include "Entity/IEntity.hpp"

namespace Entity
{
	class PhysicsProp : public IEntity
	{
	public:
		PhysicsProp( void );
		virtual ~PhysicsProp( void );

		virtual void Draw( void );

		virtual Graphics::ISprite *GetSprite( void );
		virtual Physics::IBody *GetPhysicsBody( void );

		virtual float GetAngle( void ) const;
		virtual void SetAngle( const float ang );

		virtual Math::Vectorf GetPosition( void ) const;
		virtual void SetPosition( const Math::Vectorf &pos );

		virtual void SetSize( const Math::Vectorf &vec );

		virtual float GetAngularVelocity( void ) const;
		virtual void SetAngularVelocity( const float vel );

		virtual Math::Vectorf GetLinearVelocity( void ) const;
		virtual void SetLinearVelocity( const Math::Vectorf &vel );
	private:
		Graphics::ISprite *sprite;
		Physics::IBody *physBody;
	};
}

#endif //CAFFEINE_ENTITY_PHYSICSPROP_HPP